Error correcting code (ECC) is a widely used technique to protect memory information against errors occurred during data transmission or retention, thereby allowing detection, correction, or both of many common errors in data. In general, ECC operates by adding a certain level of redundancy in extra data that may be referred to as ECC bits.
The ECC bits may be utilized to determine whether data includes an error and to correct the error if the number of errors are within the capability of the ECC bits. For example, an ECC system may commonly be single-error correction (SEC) or double-error correction (DEC)
However, while ECC protection for memory is capable of detecting or correcting errors in the data, errors may also occur in the memory address that identifies the location in memory where the data is stored, and ECC will not detect or correct errors in the address. This may result in storing (or loading) data into (or from) an incorrect memory location.